Manager: Carbon Printing Manager



Carbon introduces a new printing model that allows applications to print on Mac OS 8 with existing printer drivers and on Mac OS X with new printer drivers.

On Mac OS 8, the Carbon Printing Manager calls through to the original Printing Manager functions. But on Mac OS X, Carbon applications automatically use a new printing architecture and print through different drivers.

The following is a summary of the major changes you need to be aware of. More information is available on the Carbon website: <http://developer.apple.com/macosx/carbon/>

* The Print Record (TPrint) is no longer directly accessible by applications, and has been split into two separate opaque objects: a PrintSettings object and a PageFormat object. Applications will be given references to these two privately-defined data structures. These references are then used to query the Printing Manager for information contained within the objects.

* A consequence of splitting the Print Record and making it private is there are no fixed sizes. Applications will be able to "extend" both the PrintSettings and PageFormat objects, but applications must not assume a specific size when storing and retrieving PageFormat objects with documents.

* The Carbon Printing Manager will supply functions for flattening and restoring both the PrintSettings and PageFormat objects. When storing printing information with documents, it will suffice to store just the PageFormat object. If older versions of your application store a print record with a saved document, you may continue to do so to provide backward compatibility.

* Application developers should reduce the use of calls that append items to print dialog boxes. We expect to provide a new panel-based interface in the near future.

* There are many improvements to the QuickDraw interfaces for Carbon, including new accessor functions and data structures that should be used.

* All print records use the "draft" style, not the "deferred" style, which implies that a print driver must handle the spooling if it wants to provide spooling for the user. Many, if not all, print drivers perform their own spooling and don't require applications to call PrPicFile to implement spooling. Because it is rarely used, we are eliminating system level spooling code from the Carbon Printing Manager.

* The Carbon Printing Manager now enforces an order in which some routines are called. Any routine used out of scope will return an error.

* All Carbon Printing Manager routines are only valid within a PMBegin/PMEnd block.

* PrintSettings and PageFormats objects are automatically disposed of during a PMEnd call.

Supported  PMBegin

The function PMBegin replaces the Printing Manager function PrOpen.

Supported  PMBeginDocument

The PMBeginDocument function replaces the Printing Manager function PrOpenDoc.

The Printing Manager function PrOpenDoc included a parameter that pointed to an input and output buffer. For Carbon, drivers are assumed to be handling I/O buffering. Therefore, PMBeginDocument has no similar parameter.

Supported  PMBeginPage

The PMBeginPage function replaces the Printing Manager function PrOpenPage.

Supported  PMConvertOldPrintRecord

Supported  PMCopyPageFormat

Supported  PMCopyPrintSettings

Supported  PMDefaultPageFormat

The PMDefaultPageFormat function and the PMDefaultPrintSettings function replace the Printing Manager function PrintDefault.

Supported  PMDefaultPrintSettings

The PMDefaultPrintSettings function and the PMDefaultPageFormat function replace the Printing Manager function PrintDefault.

Supported  PMDisableColorSync

Supported  PMDisposePageFormat

Supported  PMDisposePrintSettings

Supported  PMEnableColorSync

Supported  PMEnd

The function PMEnd replaces the Printing Manager function PrClose.

Supported  PMEndDocument

The PMEndDocument replaces the Printing Manager function PrCloseDoc.

Supported  PMEndPage

The PMEndPage function replaces the Printing Manager function PrClosePage.

Not Recommended  PMError

The PMError function replaces the Printing Manager function PrError. However, you should reduce your application use of PMError and instead respond to result codes as soon as they are returned by Carbon Printing Manager functions.

Supported  PMFlattenPageFormat

Supported  PMFlattenPrintSettings

Not Recommended  PMGeneral

The PMGeneral function is an interim replacement for the Printing Manager function PrGeneral.

Supported  PMGetAdjustedPageRect

Supported  PMGetAdjustedPaperRect

Supported  PMGetCopies

The PMGetCopies function replaces the Printing Manager opcode kPrinterDirectOpCode in kPDVerifySelect mode, and obtains information formerly stored in the iCopies field of the Printing Manager structure TPrJob.

Not Recommended  PMGetDialogAccepted

PMGetDialogAccepted gives you access to the information formerly contained in the fDoIt field of the Printing Manager structure TPrDlg .

Not Recommended  PMGetDialogDone

PMGetDialogDone gives you access to the information formerly contained in the fDone field of the Printing Manager structure TPrDlg .

Not Recommended  PMGetDialogPtr

PMGetDialogPtr gives you access to the information formerly contained in the dlg field of the Printing Manager structure TPrDlg .

Supported  PMGetDriverCreator

The PMGetDriverCreator function replaces the Printing Manager opcode kPrinterDirectOpCode in kPDVerifySelect mode.

Supported  PMGetDriverReleaseInfo

The PMGetDriverReleaseInfo function replaces the Printing Manager opcode kPrinterDirectOpCode in kPDVerifySelect mode, and obtains information formerly contained in the iPrVersion of the Printing Manager structure TPrint.

Supported  PMGetFirstPage

The PMGetFirstPage function replaces the Printing Manager opcode kPrinterDirectOpCode in kPDVerifySelect mode, and obtains information previously stored in the iFstPage field of the Printing Manager structure TPrJob.

Supported  PMGetGrafPtr

The PMGetGrafPtr function allows access to the pointer formerly stored in the gPort field of the Printing Manager structure TPrPort.

Supported  PMGetIndexedPrinterResolution

Supported  PMGetItemProc

Supported  PMGetJobName

Supported  PMGetLanguageInfo

Supported  PMGetLastPage

The PMGetLastPage function replaces the Printing Manager opcode kPrinterDirectOpCode in kPDVerifySelect mode, and obtains information previously stored in the iLstPage field of the Printing Manager structure TPrJob.

Supported  PMGetModalFilterProc

Supported  PMGetOrientation

The PMGetOrientation function replaces the Printing Manager opcode getRotnOp, and obtains information formerly stored in the lower byte of the wDev field of the Printing Manager structure TPrStl.

Supported  PMGetPageFormatExtendedData

Supported  PMGetPageRange

The PMGetPageRange function replaces the Printing Manager opcode kPrinterDirectOpCode in kPDVerifySelect mode, and obtains information previously stored in the iFstPage and iLstPage fields of the Printing Manager structure TPrJob.

Supported  PMGetPhysicalPageSize

Supported  PMGetPhysicalPaperSize

Supported  PMGetPrinterResolution

Supported  PMGetPrinterResolutionCount

Supported  PMGetPrintSettingsExtendedData

Supported  PMGetResolution

This function replaces the Printing Manager opcode getRslDataOp and allows access to information formerly stored in the iVRes and iHRes fields of the Printing Manager structure TPrInfo.

Supported  PMGetScale

Not Recommended  PMIdleProcPtr

Supported  PMIsPostScriptDriver

Not Recommended  PMItemProcPtr

Supported  PMMakeOldPrintRecord

Supported  PMNewPageFormat

Supported  PMNewPrintSettings

Supported  PMPageSetUpDialog

The PMPageSetUpDialog function replaces the Printing Manager function PrStlDialog.

Supported  PMPageSetUpDialogInit

The PMPageSetUpDialogInit function replaces the Printing Manager function PrStlInit.

Not Recommended  PMPageSetUpDialogInitProcPtr

Supported  PMPageSetUpDialogMain

The PMPageSetUpDialogMain function replaces the Printing Manager function PrDlgMain.

A panel interface under development will eventually make it unnecessary to call PMPageSetUpDialogMain.

Supported  PMPostScriptBegin

Supported  PMPostScriptData

Supported  PMPostScriptEnd

Supported  PMPostScriptFile

Supported  PMPostScriptHandle

Supported  PMPrintDialog

The PMPrintDialog function replaces the Printing Manager function PrJobDialog.

Supported  PMPrintDialogInit

The PMPrintDialogInit function replaces the Printing Manager function PrJobInit.

Not Recommended  PMPrintDialogInitProcPtr

Supported  PMPrintDialogMain

The PMPrintDialogMain function replaces the Dialog Manager function PrDlgMain.

Supported  PMSetCopies

The PMSetCopies function replaces the Printing Manager opcode kPrinterDirectOpCode in kPDVerifySelect mode, and sets information formerly stored in the iCopies field of the Printing Manager structure TPrJob.

Not Recommended  PMSetDialogAccepted

The PMSetDialogAccepted lets you set information formerly contained in the fDoIt field of the Printing Manager structure TPrDlg .

Not Recommended  PMSetDialogDone

The <PMSetDialogDone lets you set information formerly contained in the fDone field of the Printing Manager structure TPrDlg.

Not Recommended  PMSetError

The PMSetError function replaces the Printing Manager function PrSetError. You are encouraged to reduce your use of this function.

Supported  PMSetFirstPage

The PMSetFirstPagefunction replaces the Printing Manager opcode kPrinterDirectOpCode in kPDVerifySelect mode, and sets information previously stored in the iFstPage field of the Printing Manager structure TPrJob.

Not Recommended  PMSetIdleProc

Not Recommended  PMSetItemProc

The PMSetItemProc function allows you to set the pointer previously contained in the pItemProc field of the Printing Manager function TPrDlg.

Supported  PMSetJobName

Supported  PMSetLastPage

The PMSetLastPagefunction replaces the Printing Manager opcode kPrinterDirectOpCode in kPDVerifySelect mode, and sets information previously stored in the iLstPage field of the Printing Manager structure TPrJob.

Not Recommended  PMSetModalFilterProc

Supported  PMSetOrientation

The PMSetOrientation function replaces the Printing Manager opcode getRotnOp, and sets information formerly stored in the lower byte of the wDev field of the Printing Manager structure TPrStl.

Supported  PMSetPageFormatExtendedData

Supported  PMSetPageRange

The PMSetPageRangefunction replaces the Printing Manager opcode kPrinterDirectOpCode in kPDVerifySelect mode, and sets information previously stored in the iFstPage and iLstPage fields of the Printing Manager structure TPrJob.

Supported  PMSetPhysicalPaperSize

Supported  PMSetPrintSettingsExtendedData

Supported  PMSetProfile

Supported  PMSetResolution

This function replaces the Printing Manager opcode getRslDataOp and allows you to change information formerly stored in the iVRes and iHRes fields of the Printing Manager structure TPrInfo.

Supported  PMSetScale

Supported  PMUnFlattenPageFormat

Supported  PMUnFlattenPrintSettings

Supported  PMValidatePageFormat

The PMValidatePrintSettings and PMValidatePageFormat functions replace the Printing Manager function PrValidate.

Supported  PMValidatePrintSettings

The PMValidatePrintSettings and PMValidatePageFormat functions replace the Printing Manager function PrValidate.

[Table of Contents] [Manager Index] [Function Index]

Generated on: 7/7/99. Copyright 1999 Apple Computer, Inc. All rights reserved.